#ifndef IRIDE_DEMO3D_H_
#define IRIDE_DEMO3D_H_

//#define PROFILE_FRAME_RENDERING

#include "Game.h"
#include "Engine3d/Engine3d.h"

namespace Iride
{
	class Demo3d : public Game
	{
		typedef  void (Demo3d::*UpdateFnc)();

		public:
			Demo3d(IGraphics* pGraphics, IInput* pInput);
			virtual ~Demo3d();

		protected:
			virtual bool Init();
			virtual bool HandleInput();
			virtual void Update();
			virtual void Render();
			virtual void CleanUp();
		private:

			void SetSingleTriangleDemo();
			void SingleTriangleDemoUpdate();

			void SetCubeDemo();
			void CubeDemoUpdate();

			void DullUpdate();

			UpdateFnc mpUpdateFnc;

			Engine3d mEngine3d;

			Uint mNumVertices;
			Uint mNumTriangles;

			Vector3* mVertices;
			Uint* mIndices;
			Color* mColors;

			Real mStartZ;
			Real mCounter;



			typedef Game super;
	};
};


#endif
